Enterprise systems manage many of the business processes and applications critical to the success of any particular company, including, for example, order generation and sales activities, inventory management, customer relations and support, product lifecycle and human resources management, etc. Typically, large-scale enterprise systems include one or more enterprise servers and hundreds, if not thousands, of stationary and mobile devices, such as, for example, personal digital assistants (PDAs), pocket computers (Pocket PCs), laptop, notebook and desktop computers, etc. Enterprise systems may also include other components, such as, for example, middleware servers, software application development, deployment and administration subsystems, intra-networks, etc.
Generally, mobile business application functionality may be distributed between an enterprise server and a mobile device based on many different criteria, including, for example, the specific requirements of the particular business application, the processing and storage capacities of the mobile devices, etc. In many cases, business application data may be created, modified and deleted by both the mobile device and the enterprise server. Consequently, maintaining the consistency of business application data between the mobile device and the enterprise server is an important component of the enterprise system. An intermediate subsystem, such as, for example, a middleware server, may assist the data synchronization process.
Enterprise business applications typically store data as objects, records, etc., within an application database on the enterprise server. A much smaller subset of these data objects may be duplicated and stored on the mobile device. However, enterprise business applications also define various dependencies between data objects, and, consequently, may require all of the related data objects to be present on the mobile device.
Unfortunately, in many cases, the requirement to store many related data objects on the mobile device conflicts with the storage or processing capacities of the mobile device, such as, for example, using an excessive amount of memory to store all of the related data objects, consuming an excessive amount of time or bandwidth to download all of the related data objects, etc. Typically, an excessive, and often redundant, amount of related data objects are downloaded to the mobile device, thereby adversely impacting the performance of the mobile device and, generally, of the entire enterprise system. Furthermore, if all of the data objects related to a particular data object are not already present on the mobile device, that particular data object may not be downloaded at all.